1. Field of the Invention
This invention relates in general to database management systems performed by computers, and in particular to a method and system for altering a sequence number assignment pattern while preserving integrity and high concurrency in a multi-system shared disk environment.
2. Description of Related Art
Databases are computerized information storage and retrieval systems. A Relational Database Management System (RDBMS) is a database management system (DBMS) which uses relational techniques for storing and retrieving data. RDBMS software using a Structured Query Language (SQL) interface is well known in the art. The SQL interface has evolved into a standard language for RDBMS software and has been adopted as such by both the American National Standards Organization (ANSI) and the International Standards Organization (ISO).
A typical relational database management system includes both database files and index files. The database files store data in the rows and columns of tables stored on data pages. A page is a physical unit of transfer between main storage and secondary storage. In such a table, the rows may correspond to individual records while the columns of the table represent attributes of the records. For example, in a customer information table of a database management system, each row might represent a different customer data object while each column represents different attributes of the customers, such as the name of a particular customer, the amount owed by the customer and the cash receipts received from the customer. The actions of a transaction that cause changes to recoverable data objects are recorded in a log.
Generally, many transaction processing systems, Data Base Management Systems and application programs have a need for enhanced transaction control for databases. Transaction control is well understood in the art and is often used to guarantee the integrity of enterprise databases. Guaranteeing the integrity of databases in the face of concurrent execution of multiple transactions and various failures, while avoiding serialization of different systems' operations, is a very important issue with enterprise databases. Indeed, many methods have been developed in the past to deal with these problems for enterprise databases. Specifically, one such method, utilized in many transaction processing systems, database management systems and applications includes an efficient technique for assigning, to concurrent transactions, unique sequence numbers which are recoverable and follow a predetermined sequence pattern. Such numbers may have a numeric data type such as small integer, positive and negative numbers with decimal precision 1 or 2, etc. In current database technology, transaction processing systems usually assign a unique sequence number (SN) to each one of numerous transactions, log file records, fields, etc. Generally, the SNs comprise values assigned a monotonically increasing value in an ascending sequence, although they can encompass other sequence patterns, as well.
One problem arises in such disk sharing multi-systems when the sequence number assignment to a transaction includes an update operation to a record which is locked until transaction commits. This serializes other transactions because they have to wait for the updated record to be unlocked in order to receive their sequence number assignment. In a transaction processing multi-system, where there is data sharing, an update of this record causes serialization across all systems, which inhibits transaction throughput. This problem can be avoided with selective locking and delayed record update on the shared disk.
However, a presently unsolvable major problem arises in a data management multi-system with shared data when a system of the enterprise is allowed to alter a sequence number assignment pattern while the sequence numbers are being assigned to other systems. One solution would be to perform the sequence number generation off-line whilst the change in the sequence number assignment pattern is being done. However, this is disruptive to applications and users.
Therefore, there is a need for a simple, optimized and generic method and system allowing alteration of a sequence number assignment pattern while preserving integrity of assigned sequence numbers and high concurrency in a multi-system shared disk environment.